// 公共js组件
const utils = {
  /**
   * 判断是否有当前类
   * @param {element} elements 标签
   * @param {String}} cName 类名
   */
  hasClass(elements, cName) {
    return !!elements.className.match(
      new RegExp('(\\s|^)' + cName + '(\\s|$)')
    ); // ( \\s|^ ) 判断前面是否有空格 （\\s | $ ）判断后面是否有空格 两个感叹号为转换为布尔值 以方便做判断
  },
  /**
   * 新增加一个类
   * @param {element} elements 标签
   * @param {String} cName 类名
   */
  addClass(elements, cName) {
    if (!this.hasClass(elements, cName)) {
      elements.className += ' ' + cName;
    }
  },
  /**
   * 删除一个类
   * @param {element} elements 标签
   * @param {String} cName 类名
   */
  removeClass(elements, cName) {
    if (this.hasClass(elements, cName)) {
      elements.className = elements.className.replace(
        new RegExp('(\\s|^)' + cName + '(\\s|$)'),
        ' '
      ); // replace方法是替换
    }
  },
  //时间戳处理
  parseDate(time, fromat) {
    let fromatStr = fromat || 'YYYY-MM-DD hh-mm-ss';
    return new Date(time).Format(fromatStr);
  },
};

// 时间格式化
Date.prototype.Format = function (formatStr) {
  var str = formatStr
  var Week = ['日', '一', '二', '三', '四', '五', '六']
  str = str.replace(/yyyy|YYYY/, this.getFullYear())
  str = str.replace(
    /yy|YY/,
    this.getYear() % 100 > 9 ?
    (this.getYear() % 100).toString() :
    '0' + this.getYear() % 100
  )
  str = str.replace(
    /MM/,
    this.getMonth() + 1 > 9 ?
    (this.getMonth() + 1).toString() :
    '0' + (this.getMonth() + 1)
  )
  str = str.replace(/M/g, this.getMonth() + 1)
  str = str.replace(/w|W/g, Week[this.getDay()])
  str = str.replace(
    /dd|DD/,
    this.getDate() > 9 ? this.getDate().toString() : '0' + this.getDate()
  )
  str = str.replace(/d|D/g, this.getDate())
  str = str.replace(
    /hh|HH/,
    this.getHours() > 9 ? this.getHours().toString() : '0' + this.getHours()
  )
  str = str.replace(/h|H/g, this.getHours())
  str = str.replace(
    /mm/,
    this.getMinutes() > 9 ?
    this.getMinutes().toString() :
    '0' + this.getMinutes()
  )
  str = str.replace(/m/g, this.getMinutes())
  str = str.replace(
    /ss|SS/,
    this.getSeconds() > 9 ?
    this.getSeconds().toString() :
    '0' + this.getSeconds()
  )
  str = str.replace(/s|S/g, this.getSeconds())
  return str
}

export default utils;
